package router

import (
	"com.cyt.yunpay/app/api/v1/member"
	"com.cyt.yunpay/app/api/v1/merchant"
	"com.cyt.yunpay/app/api/v1/order"
	"com.cyt.yunpay/app/api/v1"
	"com.cyt.yunpay/app/service"
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/net/ghttp"
)

func init() {
	s := g.Server()
	// 分组路由注册方式
	s.Group("/", func(group *ghttp.RouterGroup) {
		group.Middleware(
			service.Middleware.Ctx,
			service.Middleware.CORS,
		)
		group.POST("/login", service.Auth.LoginHandler)

		group.GET("/test", v1.Test.Test)

		group.POST("/create/secret/config", v1.SercetConfig.CreateSercetConfig)
		group.POST("/get/secret/config", v1.SercetConfig.GetSercetConfig)
		group.Group("/v1", func(group *ghttp.RouterGroup) {
			//group.Middleware(service.VerifySign.VerifySign)
			//group.Middleware(service.Middleware.JwtAuth)
			// 会员服务相关
			group.Group("/member", func(group *ghttp.RouterGroup) {
				//group.GET("/refresh_token", service.Auth.RefreshHandler) //刷新token
				//group.GET("/logout", service.Auth.LogoutHandler) //退出

				// 保存用户
				group.POST("/save", member.Member.SaveMember) //保存用户

				group.POST("/create", member.Member.CreateMember) //创建会员
				group.POST("/send/code", member.Member.SendCode) // 发送验证码
				group.POST("/relation/mobile", member.Member.RelationMobile) // 关联手机号
				group.POST("/sign/contract/page", member.Member.SignContractPage) // 电子协议页面
				group.POST("/sign/contract", member.Member.SignContract) // 电子协议
				group.POST("/realname/auth", member.Member.RealNameAuth) // 实名认证
				group.POST("/company/set/info", member.Member.CompanySetInfo) // 设置企业信息
				group.POST("/upload/idcard/collect", member.Member.UploadIdcardCollect) // 影印件采集
				group.POST("/company/verify/result", member.Member.CompanyVerifyResult) // 企业信息审核结果通知
				group.POST("/info", member.Member.MemberInfo) // 获取会员信息(个人)
				group.POST("/bankcard/bin", member.Member.BankCardBin) // 查询卡 bin
				group.POST("/apply/bindcard", member.Member.ApplyBindCard) // 申请绑定银行卡
				group.POST("/bind/bankcard", member.Member.BindBankCard) // 绑定银行卡
				group.POST("/unbind/bankcard", member.Member.UnBindBankCard) // 解绑银行卡
				group.POST("/query/bankcard", member.Member.QueryBankCard) // 查询银行卡
				group.POST("/lock", member.Member.MemberLock) // 锁定会员
				group.POST("/apply/bind/acct", member.Member.ApplyBindAcct) // 会员绑定支付账户用户标识
				group.POST("/change/bankcard/mobile", member.Member.CreateBankSubAcctNo) // 会员子账号开通
				group.POST("/set/pay/pwd", member.Member.SetPayPwd) // 设置支付密码【密码验证版】
				group.POST("/update/pay/pwd", member.Member.UpdatePayPwd) // 设置支付密码【密码验证版】
				group.POST("/reset/pay/pwd", member.Member.ResetPayPwd) // 重置支付密码【密码验证版】
				group.POST("/update/phone", member.Member.UpdatePhoneByPayPwd) // 修改绑定手机【密码验证版】
			})
			// 商家服务相关
			group.Group("/merchant", func(group *ghttp.RouterGroup) {
				group.POST("/query/account/file", merchant.Merchant.GetCheckAccountFile) // 查询账号
				group.POST("/query/fund/balance", merchant.Merchant.QueryReserveFundBalance) // 查询保留资金余额
				group.POST("/acct/fund/notify", merchant.Merchant.NotifySubAcctReserveFundIn) // 会员子账号汇款入金上账通知
				group.POST("/query/merchant/balance", merchant.Merchant.QueryMerchantBalance) // 查询商家余额
				group.POST("/query/bank/balance", merchant.Merchant.QueryBankBalance) // 查询银行卡余额
				group.POST("/query/bank/detail", merchant.Merchant.QueryBankInExpDetail) // 平台银行存管账户余额查询
				group.POST("/receipt/download", merchant.Merchant.EleReceiptDownload) // 电子回单下载
			})
			// 订单服务相关
			group.Group("/order", func(group *ghttp.RouterGroup) {
				group.POST("/recharge", order.Order.Recharge) // 充值
				group.POST("/withdraw", order.Order.Withdraw) // 提现
				group.POST("/create", order.Order.CreateOrder) // 创建订单
				group.POST("/agent/collet/apply", order.Order.AgentCollectApply) // 托管代收申请(标准版)
				group.POST("/sign/agent/pay", order.Order.SignalAgentPay) // 单笔托管代付(标准版)
				group.POST("/batch/agent/pay", order.Order.BatchAgentPay) // 批量托管代付(标准版)
				group.POST("/confirm/pay", order.Order.ConfirmPay) // 确认支付 (分前台和后台)
				group.POST("/pay/code/page", order.Order.GetPayCodePage) // 支付码页
				group.POST("/pay/password/page", order.Order.GetPayPasswordPage) // 支付密码页
				group.POST("/entry/goods", order.Order.EntryGoods) // 商品录入
				group.POST("/query/goods", order.Order.QueryGoods) // 商品查询
				group.POST("/freeze/money", order.Order.FreezeMoney) // 冻结金额
				group.POST("/unfreeze/money", order.Order.UnfreezeMoney) // 解冻金额
				group.POST("/refund", order.Order.Refund) // 退款申请
				group.POST("/application/transfer", order.Order.ApplicationTransfer) // 平台转账
				group.POST("/query/balance", order.Order.QueryBalance) // 查询余额
				group.POST("/query/detail", order.Order.QueryInExpDetail) // 查询账户收支明细
				group.POST("/payment/detail", order.Order.GetPaymentInformationDetail) // 付款方资金代付明细查询
				group.POST("/transit/detail", order.Order.GetPayeeFundsInTransitDetail) // 收款方在途资金明细查询
				group.POST("/split/detail", order.Order.GetOrderSplitRuleListDetail) // 订单分账明细查询
				group.POST("/resend/pay/sms", order.Order.ResendPaySMS) // 重发支付短信验证码
				group.POST("/close", order.Order.CloseOrder) // 订单关闭
			})
		})
	})
}
